What's next?

As Julia is a new language, there are relatively few resources for learning it.

Useful learning resources are:

There are a couple of books on Julia in preparation.

The main reference manual is

The best place to get help with any problems is the julia-users Google group: https://groups.google.com/forum/#!forum/julia-users

The talks from the first JuliaCon conference should be online soon: http://juliacon.org/

Packages

Probably the easiest way to get started with Julia is to find a package which implements functionality of interest to you and start reading the source code.

A rather random selection of interesting packages:

  • DataStructures.jl: data structures
  • Lazy.jl: functional programming
  • JuMP: optimization library with domain-specific language for defining problems
  • TaylorSeries: $n$-dimensional Taylor series manipulation (I'm a minor co-author)

Parallel processing

Julia was designed with various types of support for parallel processing. Launching Julia with julia -p 4 will run Julia with 4 parallel threads. The @parallel macro does the necessary:


In [1]:
nheads = @parallel (+) for i=1:200000000
  int(randbool())
end


Out[1]:
100001758

In [ ]:
Pkg.update()

In [ ]:

For instance, the ParallelSparseMatMul.jl package uses this to do sparse matrix multiplication in parallel: https://github.com/madeleineudell/ParallelSparseMatMul.jl